package com.aaa.web.dao.irepairdao;

import com.aaa.entity.*;
import com.aaa.entity.repair.BackCarRepair;
import com.aaa.entity.repair.BackCarRepairInfoDetails;
import com.aaa.entity.repair.BackCarRepairInfoSimple;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;
/**
 * @ClassName IRepairDao
 * @Description 维修订单
 * @Author lianghuige
 * @Date 2018/12/27 16:15
 **/
@Mapper
@Component
public interface IRepairDao {
    /**
     * 根据条件查询维修信息
     * @param backCarRepair
     * @return
     */
    List<BackCarRepairInfoSimple> findRepairInfo(BackCarRepair backCarRepair);

    /**
     * 分页
     * 查询数据总数
     * @return
     */
    int getRepairInfoCount();

    /**
     * 根据维修单号删除维修单
     * 修改维修单删除状态
     * @param repairid
     * @return
     */
    int delRepairInfoById(String repairid);

    /**
     * 删除维修单
     * 修改零件订单删除状态
     * @param repairid
     */
    int delExpenseOrderById(String repairid);

    /**
     * 根据name查询车主信息
     * @param name
     * @return
     */
    Map findCustomerInfoByName(String name);

    /**
     * 根据tel查询车主信息
     * @param tel
     * @return
     */
    Map findCustomerInfoByTel(String tel);
    /**
     * 根据carcode查询车主信息
     * @param carcode
     * @return
     */
    Map findCustomerInfoByCarcode(String carcode);

    /**
     * 根据schoolid 获取该门店的人员的信息
     * @param schoolId
     * @return
     */
    List<BackEmployeeinfo> listEmp(int schoolId);

    /**
     * 多表联查  维修单的具体信息
     * @param repairid
     * @return
     */
    List<BackCarRepairInfoDetails> findRepairInfoById(String repairid);

    /**
     * 提交维修单  插入repairInfo
     * @param backCarRepair
     * @return
     */
    int addRepairInfo(BackCarRepair backCarRepair);

    /**
     * 提交维修单  插入expenseOrder 维修费用单
     * @param backExpenseorder
     */
    void addExpenseOrderRe(BackExpenseorder backExpenseorder);

    /**
     * 提交维修单  插入expenseOrder 维修费用单
     * @param backExpenseorder
     */
    void addExpenseOrder(BackExpenseorder backExpenseorder);

    /**
     * 根据goodsid 查询该零件的费用
     * @param valueOf
     * @return
     */
    double findExpenseCost(Integer valueOf);

    /**
     * 根据门店ID获取该门店仓库的零件信息
     * @param schoolId
     * @return
     */
    List<Map> listComponent(int schoolId);

    /**
     * 提交维修单  根据id减去仓库中零件的数量
     * @param valueOf
     */
    void updateEntrepotInfo(Integer valueOf);

    /**
     * 提交维修单 生成消费记录
     * @param backExpenserecord
     */
    void addExpenseRecord(BackExpenserecord backExpenserecord);

    /**
     * 删除维修单  根据repairid 获取 仓库信息
     * @param repairid
     * @return
     */
    List<BackExpenseorder > findGoodsById(String repairid);

    /**
     * 删除维修单  修改仓库零件数量
     * @param goodsid
     */
    void updateEntrepotNum(int goodsid);
}
